//index.js
//获取应用实例
const app = getApp()
const AV = require("../../utils/av-weapp-min.js");
var lcUser = null;
Page({
  data: {
    motto: '点击继续',
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },
  //事件处理函数
  bindViewTap: function() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onLoad: function () {
    
    this.registerLc();
    
  },
  getUserInfo: function(e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  },
  click: function(e) {
    wx.switchTab({
      url: '/pages/home/home',
    })
  },
  registerLc : function() {
    wx.showLoading({
      title: '加载数据中...',
    });
    AV.User.loginWithWeapp().then(user => {
      wx.hideLoading();
      // console.log(user);
      // app.globalData.user = user.toJSON();
      lcUser = AV.User.current();
      this.getWxUser();
    }).catch(function (){
      wx.hideLoading();
      console.error
      });
  },
  getWxUser : function () {
    if (app.globalData.userInfo) {
      console.log("getWxUser","from global");
      this.updateWxUser(app.globalData.userInfo);
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
    } else if (this.data.canIUse) {
      console.log("getWxUser", "from data.canIUse");
      // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        this.updateWxUser(res.userInfo);
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    } else {
      console.log("getWxUser", "from else");
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.updateWxUser(res.userInfo);
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    }
  },
  updateWxUser : function(userInfo) {
    
    lcUser.set(userInfo).save().then(user => {
      // 成功，此时可在控制台中看到更新后的用户信息
      app.globalData.userInfo = user.toJSON();
    }).catch(console.error);
  }
})
